package com.banmajio.entity;

import com.banmajio.config.CopyField;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 志愿者信息实体类
 * @TableName xt_volunteer_info
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("xt_volunteer_info")
public class VolunteerInfo implements Serializable {

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @CopyField(name = "id")
    private Long id;

    /**
     * 真实姓名
     */
    @CopyField(name = "name")
    private String name;

    /**
     * 证件类型¶1 内地居民身份证 5 护照¶2 香港居民身份证 6 军官证¶3 澳门居民身份证 7 士兵证¶4 台湾居民身份证 ¶8 外国人永久居留身份证9 其他有效国籍旅行证件
     */
    @CopyField(name = "id_type")
    private Integer idType;

    /**
     * 证件号码
     */
    @CopyField(name = "id_number")
    private String idNumber;

    /**
     * 证件图片
     */
    @CopyField(name = "id_img")
    private String idImg;

    /**
     * 性别 1 - 男性 2 - 女性
     */
    @CopyField(name = "sex")
    private Integer sex;

    /**
     * 国籍
     */
    @CopyField(name = "nationality")
    private String nationality;

    /**
     * 出生日期
     */
    @CopyField(name = "date_of_birth")
    private String dateOfBirth;

    /**
     * 手机
     */
    @CopyField(name = "mobile")
    private String mobile;

    /**
     * 是否公开展示志愿经历
     */
    @CopyField(name = "is_public_volunteer_experience")
    private Boolean isPublicVolunteerExperience;

    /**
     * 服务区域
     */
    @CopyField(name = "service_area")
    private String serviceArea;

    /**
     * 服务方式 1-集中定点 2-综合包户 3-预约上门 9-其他
     */
    @CopyField(name = "service_mode")
    private Short serviceMode;

    /**
     * 累计志愿服务时间,以分钟为单位
     */
    @CopyField(name = "total_service_hour")
    private Long totalServiceHour;

    /**
     * 累计培训时间,以小时为单位
     */
    @CopyField(name = "total_training_hour")
    private Long totalTrainingHour;

    /**
     * 服务类别, 多个逗号分割¶赛会服务 平安综治 应急救援 疫情防控 助老服务 助残服务 关爱服务 生态环保 垃圾分类 交通文明 礼让行人 乡村振兴 社区服务 卫生健康 科普服务 文旅服务 国际服务 其他服务
     */
    @CopyField(name = "service_category")
    private String serviceCategory;

    /**
     * 服务领域, 多个逗号分割¶疫情防控志愿者¶扶贫济困志愿者¶垃圾分类志愿者¶社区志愿者¶青年志愿者¶文化志愿者¶医疗志愿者¶教育志愿者¶助残志愿者¶巾帼志愿者¶消防志愿者¶红十字志愿者¶治安志愿者¶由首都综治办发起，主要开展治安巡逻的志愿者¶网络文明志愿者¶由首都文明办发起，开展网络文明的志愿者¶管城理市志愿者¶由城管委发起，从事城市管理志愿服务的志愿者¶应急志愿者¶由市应急办发起，开展应急宣教和救援的志愿者¶红十字志愿者¶请选择服务领域¶  ¶由市红十字会发起，开展红十字志愿服务的志愿者¶旅游志愿者¶由市旅游委发起，在各旅游景点开展志愿服务的志愿者¶博物馆志愿者¶由市文物局发起，在各博物馆开展义务讲解的志愿者¶保护知识产权志愿者¶由市知识产权局发起，开展保护知识产权宣教的志愿者¶节水护水志愿者¶由市水务局发起，以保护水资源为主的志愿者¶科普志愿者¶由市科协发起，主要开展科普宣教的志愿者
     */
    @CopyField(name = "service_domain")
    private String serviceDomain;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @CopyField(name = "create_time", format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @CopyField(name = "update_time", format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 登录账号/用户名
     */
    @CopyField(name = "username")
    private String username;

    /**
     * 密码
     */
    @CopyField(name = "password")
    private String password;

    /**
     * 创建人
     */
    @CopyField(name = "create_by")
    private Long createBy;

    /**
     * 修改人
     */
    @CopyField(name = "update_by")
    private Long updateBy;

    /**
     * 盐
     */
    @CopyField(name = "salt")
    private String salt;

    /**
     * 状态0-未认证1-已认证2-已驳回99-未提交资料
     */
    @CopyField(name = "status")
    private Integer status;

    /**
     * 头像
     */
    @CopyField(name = "avatar")
    private String avatar;

    /**
     * 邮件
     */
    @CopyField(name = "email")
    private String email;

    /**
     * 昵称
     */
    @CopyField(name = "nickname")
    private String nickname;

    /**
     * 创建人姓名
     */
    @CopyField(name = "creator_name")
    private String creatorName;

    /**
     * 修改人姓名
     */
    @CopyField(name = "updator_name")
    private String updatorName;

    /**
     * 电话
     */
    @CopyField(name = "telephone")
    private String telephone;

    /**
     * 志愿者统一编号
     */
    @CopyField(name = "unified_code")
    private String unifiedCode;

    /**
     * 推荐人姓名
     */
    @CopyField(name = "referral")
    private String referral;

    /**
     * 推荐人统一编号
     */
    @CopyField(name = "referral_unified_code")
    private String referralUnifiedCode;

    /**
     * 星级
     */
    @CopyField(name = "volunteer_star_level")
    private Short volunteerStarLevel;

    /**
     * 评分
     */
    @CopyField(name = "score")
    private Float score;

    /**
     * 禁止状态 0禁用 1正常
     */
    @CopyField(name = "taboo_status")
    private Integer tabooStatus;

    /**
     * 民族
     */
    @CopyField(name = "nation")
    private String nation;

    /**
     * 住址
     */
    @CopyField(name = "address")
    private String address;

    /**
     * 签发机关
     */
    @CopyField(name = "issuing_organization")
    private String issuingOrganization;

    /**
     * 有效期限开始
     */
    @CopyField(name = "start_date")
    private String startDate;

    /**
     * 有效期限结束
     */
    @CopyField(name = "expiry_date")
    private String expiryDate;

    /**
     * 政治面貌
     */
    @CopyField(name = "politics_status")
    private String politicsStatus;

    /**
     * 第一服务领域或行业
     */
    @CopyField(name = "first_level_service_field")
    private String firstLevelServiceField;

    /**
     * 第二服务领域或行业
     */
    @CopyField(name = "second_level_service_field")
    private String secondLevelServiceField;

    /**
     * 展示的服务时长
     */
    @CopyField(name = "show_service_hour")
    private String showServiceHour;

    /**
     * 中文区域全路径
     */
    @CopyField(name = "area_path")
    private String areaPath;

    /**
     * 微信小程序openid
     */
    @CopyField(name = "wx_mini_openid")
    private String wxMiniOpenid;

    /**
     * unionid
     */
    @CopyField(name = "union_id")
    private String unionId;

    /**
     * 微信公众号openid
     */
    @CopyField(name = "wx_official_openid")
    private String wxOfficialOpenid;

    /**
     * 证件有效时间： 5年(5) 10年(10) 20年(20) 长期(-1)
     */
    @CopyField(name = "valid_period")
    private Short validPeriod;

    /**
     * 证件是否改变 0否 1是
     */
    @CopyField(name = "is_id_changed")
    private Short isIdChanged;

    /**
     * 个人位置偏好
     */
    @CopyField(name = "place_preference")
    private String placePreference;

    /**
     * 位置偏好完整路径
     */
    @CopyField(name = "place_path")
    private String placePath;

    /**
     * 志愿者类型 0.普通 1.青少年 2.老年
     */
    @CopyField(name = "volunteer_type")
    private Integer volunteerType;

    /**
     * 注销状态: 0.正常 1.待注销 2.已注销
     */
    @CopyField(name = "deletion_status")
    private Integer deletionStatus;

}